/**
 * @file interfacefifo.h
 * @brief Definisce le strutture e le funzioni per gestire delle comunicazioni tramite fifo.
 *
 * La struttura principale @see InterfaceFifo definisce gli attributi per specificare
 * l'utilizzo di una fifo.
 *
 * @date Mar 10, 2012
 * @author Francesco Corvino
 */

#ifndef INTERFACEFIFO_H_
#define INTERFACEFIFO_H_

#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <fcntl.h>
#include <limits.h>
#include <sys/types.h>
#include <sys/stat.h>

typedef struct interfaceFifo {
	char name[255];
	int openmode;
	int pipefd;
	char status;
} InterfaceFifo;

int InterfaceFifo_createFifo(char * name);

void InterfaceFifo_startComm(InterfaceFifo * fifo);

int InterfaceFifo_sendMsg(InterfaceFifo * fifo, char*msg);

int InterfaceFifo_rcvMsg(InterfaceFifo * fifo, char* buffer, size_t lengbuff);

void InterfaceFifo_closeComm(InterfaceFifo * fifo);

#endif /* INTERFACEFIFO_H_ */
